package com.sg.dto.biz.bff.req;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc BffAddAccountSubjectReqDto
 * @使用场景
 */
@Data
public class BffAddAccountSubjectReqDto implements Serializable {

    /**
     * 科目名称
     */
    @NotNull(message = "科目名称不能为空")
    @ApiModelProperty("科目名称")
    private String accountSubjectName;

    /**
     * 科目类型 NATIONAL_STANDARD:国家标准 DEPT_ORG_STANDARD:部门组织标准 CONTNET_STANDARD:内容标准
     */
    @ApiModelProperty("科目类型")
    private String accountSubjectType;

    /**
     * 收支类型 INCOME:收入 SPENDING:支出
     */
    @NotNull(message = "收支类型不能为空")
    @ApiModelProperty("收支类型")
    private String billTypeCode;

    /**
     * 科目类别编码 BUDEGT_ACCOUNT_CLASS:预算账户类别 ENTITY_ACCOUNT_CLASS:实体账户类别 SYSTEM_CLASS:系统类别
     */
    @ApiModelProperty("科目类别编码")
    private String accountSubjectClassCode;

    /**
     * 行为类型编码 ADD_STAFF:添加员工 GENERATE_NAME:生成名称 RETRIEVE_PASSWORD:找回密码 RESET_PASSWORD:修改密码 LOGIN:验证码登录 ADD_ADMIN:添加空间管理员 PERFECT_INFO:完善资料 BIND_MOBILE:绑定手机号 CHANGE_MOBILE:换绑手机 ADD_BUDGET:加预算 SUB_BUDGET:减预算 BUDGET_ARRIVAL:预算到账 ISSUE_OFFCIAL_DOC:公文下发 GENERATE_TO_BE_SIGNED_WORK_TASK_MSG_TEMP:工作任务待签收 SUPERVISE_TASK_ARRANGE:任务安排督办 Q_AND_A_MESSAGE_TEMPLATE:内容智能回答 THIRD_QA_SESSION_MESSAGE_TEMPLATE:独立三方智能问答 COMMENT_MESSAGE_TEMPLATE:内容评论消息 CHANNEL_MESSAGE_TEMPLATE:通道内发消息 WORK_SUMMARY_MESSAGE_TEMPLATE:提交工作总结 PROBLEM_SUMMARY_MESSAGE_TEMPLATE:提交问题总结 SOLUTION_IDEAS_MESSAGE_TEMPLATE:提交解决思路 IMPROVEMENT_SUGGESTIONS_MESSAGE_TEMPLATE:提交改进建议 NEW_REPORT_TASK_MSG_TEMP:新汇报任务 REPORT_TASK_WILL_OVERDUE_MSG_TEMP:汇报即将逾期 REPORT_TASK_OVERDUE_MSG_TEMP:汇报已逾期 NEW_TARGET_ARRANGE_MSG_TEMP:新目标安排 REPORT_TASK_REMIND_MSG_TEMP:汇报提醒 UPDATE_TARGET_VALUE_MSG_TEMP:修改目标值 REPORT_TASK_TO_BE_EVALUATEED_MSG_TEMP:汇报待评价 REPORT_TASK_TO_BE_EXAMINE_MSG_TEMP:汇报待审核 REPORT_TASK_REJECT_MSG_TEMP:汇报审核驳回 URGE_TARGET_ARRANGE_MSG_TEMP:目标安排督办 MID_BASIC_URGE_TARGET_ARRANGE_MSG_TEMP:部门目标安排督办 ISSUE_NOTIFICATION:通知下发
     */
    @ApiModelProperty("行为类型编码")
    private String behaviorTypeCode;

    /**
     * 是否组织正式财务标准 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否组织正式财务标准不能为空")
    @ApiModelProperty("是否组织正式财务标准")
    private String isOrgOfficialAccountNom;

    /**
     * 是否资金指标 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否资金指标不能为空")
    @ApiModelProperty("是否资金指标")
    private String isFundsIndex;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @NotNull(message = "主体生命周期不能为空")
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

}
